package org.ccay.excel.importer.validate.impl;

import java.util.HashMap;
import java.util.Map;

import org.ccay.core.util.StringUtil;
import org.ccay.excel.importer.validate.AbstractValidator;
import org.ccay.excel.importer.validate.IStatus;

/**
 * 列表类型校验器
 * 	
 * @author chaowangbang
 * @since Mar 23, 2012
 */
public class EnumValidator extends AbstractValidator {
	
	/**
	 * 允许的值
	 */
	private Map<String, String> map = new HashMap<String, String>();
	
	/**
	 * 设置值列表
	 * 
	 * @param values
	 */
	public void setValues(String values) {
		if(!StringUtil.isNullOrEmpty(values)) {
			String[] strs = StringUtil.tokenizeToStringArray(values, ":");
			for (String str : strs) {
				map.put(str, "");
			}
		}
	}

	/* (non-Javadoc)
	 * @see org.ccay.excel.importer.validate.IValidator#validate(java.lang.Object, org.ccay.excel.importer.validate.IValidationContext)
	 */
	public IStatus doValidate(Object value) {
		if(map.containsKey(value)) {
			return IStatus.Ok;
		}
		
		return error();
	}

}
